1. Technical Field
The invention relates to a multimedia display system for digital computers and more particularly to playback of a plurality of simultaneous images and video segments on the display system for the digital computer. The invention relates still more particularly to a system and a method of generating a universal color lookup table and mapping a color space into the universal color lookup table.
2. Description Of the Related Art:
Digital color images can be stored in a computer in an absolute, or direct, color representation, or in a palettized, or indirect, color representation. In an absolute color representation, three numerals are stored, one each for the red component, the green component, and the blue component. To display an image stored in this representation, each value is fed into a digital-to-analog converter that drives the appropriate output gun in a video monitor. If eight-bit values are used to represent each color value, up to 16 million potential colors can be represented with this method.
A palettized image is generated by selecting a small number of colors, usually less than or equal to 256 from the potentially large number of colors in the image. These colors are stored as values in a table. Each pixel is then represented as an index into this table. The color values in the tables can be fed into the digital-to-analog converters that drive the output guns. Palettization is sometimes called color image quantization.
The use of palettized images requires less storage space than an absolute color image. Because of its reduced size, it can often be moved more quickly around a display screen than an absolute color image. For this reason, it is often desirable to use palettized images.
However, many problems result from palettizing images, especially when several images or video clips are to be simultaneously displayed. When dissolving between different palettized images, overlaying one palettized image on another, or placing pieces of several palettized images on the display screen at the same time, distorting color changes can occur in images if the values in the look-up table are changed.
There are several known techniques for solving this problem. One technique is to use a standard palette for all images. Then only a very small fixed subset of colors is used to represent all color images. The use of a standard or universal palette reduces the quality of the images, since no fixed palette of 256 colors can adequately represent all color images.
Computer graphics systems capable of providing dynamic displays, including video segments, are well known. To provide smoothly moving objects in these displays a video signal must refresh image frames at a minimum of 15 to 30 frames-per-second. Such a frame rate simulates the appearance of motion to a human observer.
Adaptive methods have been applied using smaller custom palettes built to represent each image to be simultaneously placed on the display screen. For example, if two images are to be displayed simultaneously, each image can be mapped to 128 colors. The palette of one image can occupy the first 128 entries in the look-up table, and the palette of the other image can occupy the last 128 entries in the look-up table. As the number of images being displayed simultaneously grows, the size of the palette generated for each image shrinks. As the size of the palette gets smaller, the quality of the image also declines.
Another technique exploits the fact that in many images there is an overlap of color usage, particularly in images that will be used together on the same display. Therefore, a custom color map can be generated from the distribution of colors in all the images to be displayed simultaneously.
By examining the color usage in all the images, an optimized palette of 256 colors can be selected. Each pixel in each of the images can be mapped to one color in this palette. The method makes the combination of images on a display screen quite simple. When the images are to be displayed, only one palette needs to be loaded into memory. No adjustment of indices needs to be made when additional images or pieces of images are added to the display. All pixel values are indices into the same palette.
As more and more images are mapped to the same palette, the quality of each image will degrade. However, since the method takes advantage of color redundancy in images, the degradation will be much slower than if individual palettes of fewer and fewer colors were selected for each image. The major problem in application of the technique comes when it is applied to video.
The adaptive quantization method operates to select suitable sets of colors for sets of images. When video segments are reproduced, images are being constantly replaced, requiring potentially frequent update of the palette. The obvious disadvantage to adaptive techniques is the computational load imposed on computers if required to analyze all of the data represented by a video clip to settle upon a best set of colors for all images. Few contemporary personal computers can process such a quantity of data in a reasonable time period.
Further, if an adaptive quantization process is performed for each frame, the palette for the frame would have to be stored with the frame. Such a palette would typically include 256 entries of 3 bytes each or 768 bytes of data to be appended to each frame in storage. As a result, in a personal computer, additional central processor clock cycles would be consumed in recovery and loading of the palette, bandwidth of the storage device would be taxed and more storage space consumed.
If an adaptive quantization algorithm is performed over an entire video clip in a personal computer, the amount of memory consumed and the required computation time becomes unacceptable. Moreover, during playback, an adaptive quantization algorithm might provide poor visual quality since such algorithms tend to select a specified number of representative colors by clustering in three dimensional color space. This implies that if part of a video clip is significantly different than the rest of the clip, its original colors may be poorly represented or ignored. However, the most important reason not to use adaptive quantization algorithms in multimedia environments and applications, where multiple images and video windows can be concurrently running, is that in general, the multiple images and video clips contain different color ranges. A palette optimized for the color information in one image or video clip cannot be used for another image or video clip; the 8 bit pixel values of the latter image or video clip, which are indices to their own palette, would not be accessing the correct representative color values in a different optimized palette. In multimedia applications, or any applications, allowing users to simultaneously display multiple images and playback multiple video clips mandate that a universal palette be employed.
When using a universal color palette, color differences between regions which were small in an original image can become exaggerated. The problem to be overcome in using a universal palette is to minimize the unsightly contouring effects between such image regions resulting from color distortion. The problem is complicated for certain personal computer systems in which a portion of the available color palette has been reserved for the operating system. Color lookup table sharing between an operating system presentation layer and an application at distortion of the output of the application is desirable.